package 练习10_synchronized锁的对象;

/**
 * 同步代码块（对象锁）
 * @ClassName: SyncDemo01
 * @Author: AllenSun
 * @Date: 2023/3/26 上午12:04
 */
public class SyncDemo03 implements Runnable {

    public static void main(String[] args) {

        SyncDemo03 demo03 = new SyncDemo03();
        SyncDemo03 demo04 = new SyncDemo03();
        //这是因为静态方法获取的是Demo3的类锁，和对象实例无关。且类锁只有一个，所以实现了同步。
        new Thread(demo03,"线程3").start();
        new Thread(demo04,"线程4").start();
    }

    @Override
    public void run() {
        method();
    }

    public static synchronized void method() {
        System.out.println(Thread.currentThread().getName()+"开始执行");
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println(Thread.currentThread().getName()+"执行结束");
    }
}
